1. Field of the Invention
The present invention relates generally to a data processing system. More particularly, the present invention is directed to a computer implemented method, system, and computer-usable program code for checkpointing and restarting workload partitions.
2. Description of the Related Art
A workload partition (WPAR) is a virtualized operating system environment within a single instance of an operating system. A WPAR is a software partition that provides isolation of software services, applications, and administration by utilizing flexible software-defined boundaries within the single instance of an operating system. There are two types of WPARs, a system WPAR and an application WPAR. System WPARs are virtual system environments that closely resemble a logical partition or a separate system. System WPARs have their own private file systems, users and groups, login, network space, and administrative domain. All system WPARs share the same global kernel. This means each system WPAR will run its own copy of user space programs but share the kernel (operating system) with the rest of the WPARs and the global operating system. User space is not part of a kernel. User space is that portion of system memory in which user processes run. This contrasts with kernel space, which is that portion of memory in which the kernel executes and provides its services. Application programs execute in user space.
A system WPAR can be booted, accessed, and shutdown like a stand-alone data processing system. Application WPARs are light weight environments used to isolate the execution of one or more application processes. WPAR mobility is an extension to both system and application WPARs that provides the functionality to move an actual running workload from one physical data processing system to another physical data processing system.
POSIX is an acronym for Portable Operating System Interface for UNIX, a set of IEEE and ISO standards that define an application programming interface (API), along with shell and utilities interfaces for software compatible with variants of the Unix operating system. By designing their programs to conform to POSIX, developers have some assurance that their software can be easily ported to POSIX-compliant operating systems. This includes most varieties of UNIX.
Many operating systems that are compliant with the POSIX standard, use POSIX inter-process communication (IPC) objects. Inter-process communication is a set of techniques, often referred to as objects, for exchanging data among two or more threads in one or more processes. POSIX IPC objects can be one of three kinds of objects: POSIX message queues, semaphore objects, and shared memory segments. A semaphore is a protected variable, an entity storing a value, or abstract data type, an entity grouping several variables that may or may not be numerical, that restricts access to shared resources in a multi-programming environment. An IPC semaphore object locks or unlocks shared resources. Message queues provide a way of sending a block of data from one process to another. Different processes can communicate by sending and receiving messages to and from the message queue. Shared memory segments provide an efficient way of directly sharing an address space between multiple processes.